# 常用第三方模块
# Pillow
# PIL：Python Imaging Library，已经是Python平台事实上的图像处理标准库了。PIL功能非常强大，但API却非常简单易用。
# 由于PIL仅支持到Python 2.7，加上年久失修，于是一群志愿者在PIL的基础上创建了兼容的版本，名字叫Pillow，支持最新Python 3.x，又加入了许多新特性，因此，我们可以直接安装使用Pillow。
# 安装Pillow：如果安装了Anaconda，Pillow就已经可用了。否则，需要在命令行下通过pip安装：$ pip install pillow
# 操作图像
from PIL import Image
# 打开一个jpg图像文件，注意是当前路径:
img = Image.open('PythonFile\\First\\liaoxuefeng.com\\BaseStudy\\fileResource\\images.jpg')
# 获得图像尺寸:
w,h = img.size
print('Original image size: %sx%s'%(w,h))
# 缩放到50%
img.thumbnail((w//2,h//2))
print('Resize image to: %sx%s'%(w//2,h//2))
# 把缩放后的图像用jpeg格式保存
img.save('PythonFile\\fileResource\\newFile\\thumbnail.jpg','jpeg')

# 其他功能如切片、旋转、滤镜、输出文字、调色板等一应俱全。
# 比如模糊效果
from PIL import Image,ImageFilter
im = Image.open('PythonFile\\fileResource\\images.jpg')
# 运用模糊滤镜
im1 = im.filter(ImageFilter.BLUR)
im1.save('PythonFile\\fileResource\\newFile\\blur.jpg','jpeg')

# PIL的ImageDraw提供了一系列绘图方法，让我们可以直接绘图。比如要生成字母验证码图片：
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random
#随机字母
def rndChar():
    return chr(random.randint(65,90))
#随机颜色1
def rndColor():
    return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))

# 随机颜色2:
def rndColor2():
    return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
# 240 x 60
width = 60*4
height = 60
image = Image.new('RGB',(width,height),(255,255,255))
# 创建Font对象
font = ImageFont.truetype('arial.ttf',36)# OSError: cannot open resource报出时，使用PythonFile\\fileResource\\arial.ttf
#创建Draw对象
draw = ImageDraw.Draw(image)
#填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x,y),fill=rndColor())
#输出文字
for t in range(4):
    draw.text((60*t+10,10),rndChar(),font=font,fill=rndColor2())
#模糊
image = image.filter(ImageFilter.BLUR)
image.save('PythonFile\\fileResource\\newFile\\code.jpg','jpeg')
image.show()

